def parse_args():
    import argparse
    parser = argparse.ArgumentParser(description='用于爬取知乎文章、回答或视频。')
    parser.add_argument('url', type=str, help='文章、回答或者知乎视频的url')
    parser.add_argument('--md_dir', default='.', help='markdown文件导出路径')
    parser.add_argument('--media_dir', default='media', help='媒体文件保存路径（相对于md_dir）')
    parser.add_argument('--video_resolution', default='HD', choices=['LD', 'SD', 'HD'], help='文章内嵌视频清晰度（默认: %(default)s）')
    parser.add_argument('--zvideo_resolution', default='HD', choices=['LD', 'SD', 'HD', 'FHD'], help='知乎视频清晰度（默认: %(default)s）')
    parser.add_argument('--disable_cache', action='store_true', help='对于图片、文章内置视频等媒体文件，默认不重复下载。如果使用该选项，将忽略已存在的媒体文件')
    parser.add_argument('--parser', default='lxml', choices=['lxml', 'html.parser'], help='网页元素解析器（默认: %(default)s）')
    parser.add_argument('--update_cookie', default=None, type=str, help='更新cookie')
    return parser.parse_args()
args = parse_args()


from config import *
from ZhihuHandler import ZhiHuHandler
import os
import json


script_dir = os.path.dirname(os.path.abspath(__file__))


def main():
    url = args.url
    MD_EXPORT_DIR = args.md_dir  # markdown 文件或知乎视频导出路径
    MEDIA_DIR = os.path.join(MD_EXPORT_DIR, args.media_dir)
    if args.update_cookie:
        from get_cookies import update_cookie
        update_cookie(args.update_cookie)
    if not os.path.exists(COOKIE_PATH):
        import sys
        print(f'未找到 cookie 缓存，请使用 --update_cookie 指定 cookie.（温馨提示：使用未登录的 cookie 可能无法获取到完整内容。）')
        sys.exit(-1)
    with open(COOKIE_PATH, 'r', encoding='utf-8') as f:
        cookies = json.load(f)
    handler = ZhiHuHandler(
        ROOT_PATH=MD_EXPORT_DIR,
        MEDIA_PATH=MEDIA_DIR,
        cookies=cookies,  # cookies 字典
        video_resolution=args.video_resolution,  # 文章内嵌视频清晰度，默认 'HD'，可选 'LD', 'SD', 'HD'
        zvideo_resolution=args.zvideo_resolution,  # 视频清晰度，默认 'HD'，可选 'LD', 'SD', 'HD', 'FHD'
        disable_cache=args.disable_cache,
        parser=args.parser
    )

    urls = [
        url,
    ]


    import warnings
    for url in urls:
        if 'zvideo' in url:
            handler.export_zvideo_from(url)
        else:
            if 'question' in url and 'answer' not in url:
                warnings.warn(f'{url} 是问题链接而不是某个回答的链接。')
            handler.export_markdown_from(url)


if __name__ == '__main__':
    main()
